//
//  MineViewController.swift
//  HLSwiftWork
//
//  Created by hulinhu on 2018/6/8.
//  Copyright © 2018年 hulinhu. All rights reserved.
//

import UIKit

let kMineCellID = "mineCellId"

class MineViewController: HLBaseViewController {
    
    // [weak self] 必须使用 lazy 要不报错
   lazy var tableView : UITableView = { [weak self] in
        let tableView = UITableView(frame:(self?.view.bounds)!, style:.plain)
         tableView.register(UITableViewCell.self, forCellReuseIdentifier: kMineCellID)
        tableView.estimatedRowHeight = 0;
        tableView.estimatedSectionHeaderHeight = 0;
        tableView.estimatedSectionFooterHeight = 0;
        tableView.delegate = self
        tableView.dataSource = self
        // 尾视图
        let footView = MineFootView()
        footView.finishedBlock = {
            tableView.reloadData()
        }
        tableView.tableFooterView = footView
        return tableView
        
    }()
    

    override func viewDidLoad() {
        super.viewDidLoad()
         setupUI()
    }
}


// MARK: - 设置UI
extension  MineViewController {
    
    fileprivate  func setupUI() {
        view.addSubview(tableView)
        navigationItem.title = "我"
        setupNavgationBar()
    }
    
    private func setupNavgationBar() {
        navigationItem.leftBarButtonItem = UIBarButtonItem(image: "mine-setting-icon", highImage: "mine-setting-icon-click", target: self, action: #selector(leftItemClicked))
    }
    
}

// MARK: - 数据源  如果 必须的代理么有实现 那么会报错
extension MineViewController: UITableViewDataSource{
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        return 2
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        // ios 防止 OC 版本 使用系统的缓存池
        var cell = tableView.dequeueReusableCell(withIdentifier: "meCell")
        if cell == nil {
            cell = UITableViewCell(style: .default, reuseIdentifier: "meCell")
        }
        
        if indexPath.section == 0 {
            cell?.textLabel?.text = "登录注册"
        } else {
            cell?.textLabel?.text = "离线下载"
        }
        return cell!
        
    }
    
}
// MARK: - tableView代理方法
extension MineViewController: UITableViewDelegate{
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return kCellTextMargin
    }
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print(indexPath)
    }
}

//点击事件
extension MineViewController {
    @objc fileprivate func leftItemClicked() {
        print("点击了顶部左侧按钮")
    }
    
}



